package com.example.student.service;

import com.example.student.entity.SysRole;
import com.example.student.model.PageResult;

import java.util.List;

public interface RoleService {
    
    /**
     * 获取角色列表（分页）
     */
    PageResult<SysRole> getRoleList(Integer page, Integer pageSize, String roleName, String roleCode);
    
    /**
     * 获取所有角色
     */
    List<SysRole> getAllRoles();
    
    /**
     * 获取所有可用角色（用于用户分配角色）
     */
    List<SysRole> getAvailableRoles();
    
    /**
     * 根据ID获取角色
     */
    SysRole getRoleById(Long id);
    
    /**
     * 添加角色
     */
    void addRole(SysRole role);
    
    /**
     * 更新角色
     */
    void updateRole(SysRole role);
    
    /**
     * 删除角色
     */
    void deleteRole(Long id);
    
    /**
     * 分配菜单权限
     */
    void assignMenus(Long roleId, List<Long> menuIds);
    
    /**
     * 获取角色的菜单ID列表
     */
    List<Long> getMenuIdsByRoleId(Long roleId);
    
    /**
     * 根据用户ID获取角色列表
     */
    List<SysRole> getRolesByUserId(Long userId);
} 